The disclosure generally relates to the field of task management in distributed computing systems, and more specifically to dynamic and scalable distribution of tasks and verification of task completion in a digital magazine system.
A digital magazine application for a client device (e.g., a mobile communication device, tablet, computer, or any other suitable computing system) provides a personalized, customizable digital magazine for a user. The digital magazine application retrieves a compilation of content items (e.g., text, images, audio, links, videos, interactive media such as games, etc.) from a digital magazine server.
The digital magazine server obtains different content items from different source devices and compiles the content items into a format customized to the user. The digital magazine server includes (or is operatively coupled to) execution devices, which are configured to retrieve one or more content items, and a scheduling device for distributing and managing tasks among the execution devices. For example, the scheduling device assigns, to a first execution device, a task of retrieving news articles from a Wall Street Journal® server daily, and assigns, to a second execution device, a task of retrieving RSS feed from a social network server every 15 minutes. However, reliance on the single scheduling device exposes the digital magazine server to a single point of failure. Specifically, the digital magazine server may not be able to provide updated content items to the client device, in case the scheduling device or any execution device becomes inoperable. Furthermore, a digital magazine server is often configured to support many digital magazine applications running in parallel on thousands or even millions of client devices. Lack of scalable and dynamic scheduling and distribution of tasks for supporting digital magazine applications degrades user experience with digital magazine applications.